package model.validator
{
	import model.registry.ColorTable;
	import model.registry.ErrorMessage;

	/**
	 * 设备
	 **/
	public class DeviceValidator
	{
		public static var TYPE_10 : int = 10;
		public static var TYPE_11 : int = 11;
		public static var TYPE_12 : int = 12;
		
		private static var itemValue:Object;
		
		/**
		 * type_id 为10和11的设备，
			定位数据中表示GPS是否有效的参数是GPS_position，其中值为1表示有效，0表示无效。
			
			Type_id 为12的设备
			定位数据中表示GPS是否有效的参数是Is_valided，其中值为1表示无效，0表示有效，这里的取值正好和10，11设备相反。
		 */
		public function DeviceValidator()
		{
		}
		
		/**
		 * 返回设备状态
		 **/
		public static function getDeviceState(positionInfo:Object):Boolean
		{
			if(positionInfo != null)
			{
				itemValue = Global.currentDeviceInfo;
				if ( itemValue == null )
				{
					throw new Error(ErrorMessage.VALUE_MUST_INIT);
				}
				if (itemValue.type_id == TYPE_10 
					|| itemValue.type_id == TYPE_11) 
				{
					return (positionInfo.gps_position == 1);
				}
				else if (itemValue.type_id == TYPE_12)
				{
					return (positionInfo.is_valided == 0);
				}
				//MAPER-17 
				/*目前可以说type_id为10和11的设备是判断GPS_position参数，
				为1表示有效，0表示无效。
				而其余设备是判断Is_valided参数，
				正好相反0表示有效，1表示无效。*/
				else
				{
					return (positionInfo.is_valided == 0);
				}
			}
			return false;
		}
		
		public static function getDeviceColor(positionInfo:Object):int
		{
			return (getDeviceState(positionInfo) == true) ? ColorTable.BLACK : ColorTable.GREEN;
		}
	}
}